const obj = JSON.parse(inputData.item || "{}");
const batch_id = inputData.batch_id || obj.transcript_title || obj.transcript_summary?.slice(0,60) || "unknown-batch";

// helpers
const join = (arr, sep) => Array.isArray(arr) ? arr.join(sep) : "";

const out = {
  question_id: obj.question_id ?? "",
  speaker: obj.speaker || "prospect",
  question_text: obj.question_text || "",
  paraphrase: obj.paraphrase || "",
  intent: obj.intent || "",
  topic_cluster: obj.topic_cluster || "",
  pain_point: obj.pain_point || "",
  urgency: obj.urgency || "",
  frequency_hint: obj.frequency_hint || "",
  funnel_stage: obj.funnel_stage || "Unknown",
  primary_keyword: obj.primary_keyword || "",
  long_tails_joined: join(obj.long_tails, ", "),
  timestamps_joined: join(obj.timestamps, ", "),
  original_quotes_joined: join(obj.original_quotes, "\n"),
  suggested_content_json: JSON.stringify(obj.suggested_content || []),
  confidence: typeof obj.confidence === "number" ? obj.confidence : "",
  transcript_summary: obj.transcript_summary || "",
  batch_id
};

// stable unique key for upsert
out.external_id = `${batch_id}::q${out.question_id}`;

return out;